

<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
  <meta charset="utf-8">
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta name="Description" content="scikit-learn: machine learning in Python">

  
  <title>Related Projects &mdash; scikit-learn 0.22 documentation</title>
  
  <link rel="canonical" href="http://scikit-learn.org/stable/related_projects.html" />

  
  <link rel="shortcut icon" href="_static/favicon.ico"/>
  

  <link rel="stylesheet" href="_static/css/vendor/bootstrap.min.css" type="text/css" />
  <link rel="stylesheet" href="_static/gallery.css" type="text/css" />
  <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<script id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script> 
</head>
<body>
<nav id="navbar" class="sk-docs-navbar navbar navbar-expand-md navbar-light bg-light py-0">
  <div class="container-fluid sk-docs-container px-0">
      <a class="navbar-brand py-0" href="index.html">
        <img
          class="sk-brand-img"
          src="_static/scikit-learn-logo-small.png"
          alt="logo"/>
      </a>
    <button
      id="sk-navbar-toggler"
      class="navbar-toggler"
      type="button"
      data-toggle="collapse"
      data-target="#navbarSupportedContent"
      aria-controls="navbarSupportedContent"
      aria-expanded="false"
      aria-label="Toggle navigation"
    >
      <span class="navbar-toggler-icon"></span>
    </button>

    <div class="sk-navbar-collapse collapse navbar-collapse" id="navbarSupportedContent">
      <ul class="navbar-nav mr-auto">
        <li class="nav-item">
          <a class="sk-nav-link nav-link" href="install.html">Install</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link" href="user_guide.html">User Guide</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link" href="modules/classes.html">API</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link" href="auto_examples/index.html">Examples</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="getting_started.html">Getting Started</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="tutorial/index.html">Tutorial</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="glossary.html">Glossary</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="developers/index.html">Development</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="faq.html">FAQ</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="#">Related packages</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="roadmap.html">Roadmap</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="about.html">About us</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="https://github.com/scikit-learn/scikit-learn">GitHub</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="https://scikit-learn.org/dev/versions.html">Other Versions</a>
        </li>
        <li class="nav-item dropdown nav-more-item-dropdown">
          <a class="sk-nav-link nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">More</a>
          <div class="dropdown-menu" aria-labelledby="navbarDropdown">
              <a class="sk-nav-dropdown-item dropdown-item" href="getting_started.html">Getting Started</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="tutorial/index.html">Tutorial</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="glossary.html">Glossary</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="developers/index.html">Development</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="faq.html">FAQ</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="#">Related packages</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="roadmap.html">Roadmap</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="about.html">About us</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="https://github.com/scikit-learn/scikit-learn">GitHub</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="https://scikit-learn.org/dev/versions.html">Other Versions</a>
          </div>
        </li>
      </ul>
      <div id="searchbox" role="search">
          <div class="searchformwrapper">
          <form class="search" action="search.html" method="get">
            <input class="sk-search-text-input" type="text" name="q" aria-labelledby="searchlabel" />
            <input class="sk-search-text-btn" type="submit" value="Go" />
          </form>
          </div>
      </div>
    </div>
  </div>
</nav>
<div class="d-flex" id="sk-doc-wrapper">
    <input type="checkbox" name="sk-toggle-checkbox" id="sk-toggle-checkbox">
    <label id="sk-sidemenu-toggle" class="sk-btn-toggle-toc btn sk-btn-primary" for="sk-toggle-checkbox">Toggle Menu</label>
    <div id="sk-sidebar-wrapper" class="border-right">
      <div class="sk-sidebar-toc-wrapper">
        <div class="sk-sidebar-toc-logo">
          <a href="index.html">
            <img
              class="sk-brand-img"
              src="_static/scikit-learn-logo-small.png"
              alt="logo"/>
          </a>
        </div>
        <div class="btn-group w-100 mb-2" role="group" aria-label="rellinks">
            <a href="support.html" role="button" class="btn sk-btn-rellink py-1" sk-rellink-tooltip="Support">Prev</a><a href="preface.html" role="button" class="btn sk-btn-rellink py-1" sk-rellink-tooltip="Welcome to scikit-learn">Up</a>
            <a href="about.html" role="button" class="btn sk-btn-rellink py-1" sk-rellink-tooltip="About us">Next</a>
        </div>
        <div class="alert alert-danger p-1 mb-2" role="alert">
          <p class="text-center mb-0">
          <strong>scikit-learn 0.22</strong><br/>
          <a href="http://scikit-learn.org/dev/versions.html">Other versions</a>
          </p>
        </div>
        <div class="alert alert-warning p-1 mb-2" role="alert">
          <p class="text-center mb-0">
            Please <a class="font-weight-bold" href="about.html#citing-scikit-learn"><string>cite us</string></a> if you use the software.
          </p>
        </div>
          <div class="sk-sidebar-toc">
            <ul>
<li><a class="reference internal" href="#">Related Projects</a><ul>
<li><a class="reference internal" href="#interoperability-and-framework-enhancements">Interoperability and framework enhancements</a></li>
<li><a class="reference internal" href="#other-estimators-and-tasks">Other estimators and tasks</a></li>
<li><a class="reference internal" href="#statistical-learning-with-python">Statistical learning with Python</a><ul>
<li><a class="reference internal" href="#recommendation-engine-packages">Recommendation Engine packages</a></li>
<li><a class="reference internal" href="#domain-specific-packages">Domain specific packages</a></li>
</ul>
</li>
<li><a class="reference internal" href="#snippets-and-tidbits">Snippets and tidbits</a></li>
</ul>
</li>
</ul>

          </div>
      </div>
    </div>
    <div id="sk-page-content-wrapper">
      <div class="sk-page-content container-fluid body px-md-3" role="main">
        
  <div class="section" id="related-projects">
<span id="id1"></span><h1>Related Projects<a class="headerlink" href="#related-projects" title="Permalink to this headline">¶</a></h1>
<p>Projects implementing the scikit-learn estimator API are encouraged to use
the <a class="reference external" href="https://github.com/scikit-learn-contrib/project-template">scikit-learn-contrib template</a>
which facilitates best practices for testing and documenting estimators.
The <a class="reference external" href="https://github.com/scikit-learn-contrib/scikit-learn-contrib">scikit-learn-contrib GitHub organisation</a>
also accepts high-quality contributions of repositories conforming to this
template.</p>
<p>Below is a list of sister-projects, extensions and domain specific packages.</p>
<div class="section" id="interoperability-and-framework-enhancements">
<h2>Interoperability and framework enhancements<a class="headerlink" href="#interoperability-and-framework-enhancements" title="Permalink to this headline">¶</a></h2>
<p>These tools adapt scikit-learn for use with other technologies or otherwise
enhance the functionality of scikit-learn’s estimators.</p>
<p><strong>Data formats</strong></p>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/paulgb/sklearn-pandas/">sklearn_pandas</a> bridge for
scikit-learn pipelines and pandas data frame with dedicated transformers.</p></li>
<li><p><a class="reference external" href="https://github.com/phausamann/sklearn-xarray/">sklearn_xarray</a> provides
compatibility of scikit-learn estimators with xarray data structures.</p></li>
</ul>
<p><strong>Auto-ML</strong></p>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/ClimbsRocks/auto_ml/">auto_ml</a>
Automated machine learning for production and analytics, built on scikit-learn
and related projects. Trains a pipeline wth all the standard machine learning
steps. Tuned for prediction speed and ease of transfer to production environments.</p></li>
<li><p><a class="reference external" href="https://github.com/automl/auto-sklearn/">auto-sklearn</a>
An automated machine learning toolkit and a drop-in replacement for a
scikit-learn estimator</p></li>
<li><p><a class="reference external" href="https://github.com/rhiever/tpot">TPOT</a>
An automated machine learning toolkit that optimizes a series of scikit-learn
operators to design a machine learning pipeline, including data and feature
preprocessors as well as the estimators. Works as a drop-in replacement for a
scikit-learn estimator.</p></li>
<li><p><a class="reference external" href="https://scikit-optimize.github.io/">scikit-optimize</a>
A library to minimize (very) expensive and noisy black-box functions. It
implements several methods for sequential model-based optimization, and
includes a replacement for <code class="docutils literal notranslate"><span class="pre">GridSearchCV</span></code> or <code class="docutils literal notranslate"><span class="pre">RandomizedSearchCV</span></code> to do
cross-validated parameter search using any of these strategies.</p></li>
</ul>
<p><strong>Experimentation frameworks</strong></p>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/yandex/REP">REP</a> Environment for conducting data-driven
research in a consistent and reproducible way</p></li>
<li><p><a class="reference external" href="https://github.com/jeff1evesque/machine-learning">ML Frontend</a> provides
dataset management and SVM fitting/prediction through
<a class="reference external" href="https://github.com/jeff1evesque/machine-learning#web-interface">web-based</a>
and <a class="reference external" href="https://github.com/jeff1evesque/machine-learning#programmatic-interface">programmatic</a>
interfaces.</p></li>
<li><p><a class="reference external" href="https://skll.readthedocs.io/en/latest/index.html">Scikit-Learn Laboratory</a>  A command-line
wrapper around scikit-learn that makes it easy to run machine learning
experiments with multiple learners and large feature sets.</p></li>
<li><p><a class="reference external" href="https://github.com/reiinakano/xcessiv">Xcessiv</a> is a notebook-like
application for quick, scalable, and automated hyperparameter tuning
and stacked ensembling. Provides a framework for keeping track of
model-hyperparameter combinations.</p></li>
</ul>
<p><strong>Model inspection and visualisation</strong></p>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/TeamHG-Memex/eli5/">eli5</a> A library for
debugging/inspecting machine learning models and explaining their
predictions.</p></li>
<li><p><a class="reference external" href="https://github.com/rasbt/mlxtend">mlxtend</a> Includes model visualization
utilities.</p></li>
<li><p><a class="reference external" href="https://github.com/reiinakano/scikit-plot">scikit-plot</a> A visualization library
for quick and easy generation of common plots in data analysis and machine learning.</p></li>
<li><p><a class="reference external" href="https://github.com/DistrictDataLabs/yellowbrick">yellowbrick</a> A suite of
custom matplotlib visualizers for scikit-learn estimators to support visual feature
analysis, model selection, evaluation, and diagnostics.</p></li>
</ul>
<p><strong>Model export for production</strong></p>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/onnx/onnxmltools">onnxmltools</a> Serializes many
Scikit-learn pipelines to <a class="reference external" href="https://onnx.ai/">ONNX</a> for interchange and
prediction.</p></li>
<li><p><a class="reference external" href="https://github.com/jpmml/sklearn2pmml">sklearn2pmml</a>
Serialization of a wide variety of scikit-learn estimators and transformers
into PMML with the help of <a class="reference external" href="https://github.com/jpmml/jpmml-sklearn">JPMML-SkLearn</a>
library.</p></li>
<li><p><a class="reference external" href="https://github.com/nok/sklearn-porter">sklearn-porter</a>
Transpile trained scikit-learn models to C, Java, Javascript and others.</p></li>
<li><p><a class="reference external" href="https://github.com/ajtulloch/sklearn-compiledtrees/">sklearn-compiledtrees</a>
Generate a C++ implementation of the predict function for decision trees (and
ensembles) trained by sklearn. Useful for latency-sensitive production
environments.</p></li>
</ul>
</div>
<div class="section" id="other-estimators-and-tasks">
<h2>Other estimators and tasks<a class="headerlink" href="#other-estimators-and-tasks" title="Permalink to this headline">¶</a></h2>
<p>Not everything belongs or is mature enough for the central scikit-learn
project. The following are projects providing interfaces similar to
scikit-learn for additional learning algorithms, infrastructures
and tasks.</p>
<p><strong>Structured learning</strong></p>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/alan-turing-institute/sktime">sktime</a> A scikit-learn compatible toolbox for machine learning with time series including time series classification/regression and (supervised/panel) forecasting.</p></li>
<li><p><a class="reference external" href="https://github.com/larsmans/seqlearn">Seqlearn</a>  Sequence classification
using HMMs or structured perceptron.</p></li>
<li><p><a class="reference external" href="https://github.com/hmmlearn/hmmlearn">HMMLearn</a> Implementation of hidden
markov models that was previously part of scikit-learn.</p></li>
<li><p><a class="reference external" href="https://pystruct.github.io">PyStruct</a> General conditional random fields
and structured prediction.</p></li>
<li><p><a class="reference external" href="https://github.com/jmschrei/pomegranate">pomegranate</a> Probabilistic modelling
for Python, with an emphasis on hidden Markov models.</p></li>
<li><p><a class="reference external" href="https://github.com/TeamHG-Memex/sklearn-crfsuite">sklearn-crfsuite</a>
Linear-chain conditional random fields
(<a class="reference external" href="http://www.chokkan.org/software/crfsuite/">CRFsuite</a> wrapper with
sklearn-like API).</p></li>
</ul>
<p><strong>Deep neural networks etc.</strong></p>
<ul class="simple">
<li><p><a class="reference external" href="http://deeplearning.net/software/pylearn2/">pylearn2</a> A deep learning and
neural network library build on theano with scikit-learn like interface.</p></li>
<li><p><a class="reference external" href="https://sklearn-theano.github.io/">sklearn_theano</a> scikit-learn compatible
estimators, transformers, and datasets which use Theano internally</p></li>
<li><p><a class="reference external" href="https://github.com/dnouri/nolearn">nolearn</a> A number of wrappers and
abstractions around existing neural network libraries</p></li>
<li><p><a class="reference external" href="https://github.com/fchollet/keras">keras</a> Deep Learning library capable of
running on top of either TensorFlow or Theano.</p></li>
<li><p><a class="reference external" href="https://github.com/Lasagne/Lasagne">lasagne</a> A lightweight library to
build and train neural networks in Theano.</p></li>
<li><p><a class="reference external" href="https://github.com/dnouri/skorch">skorch</a> A scikit-learn compatible
neural network library that wraps PyTorch.</p></li>
</ul>
<p><strong>Broad scope</strong></p>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/rasbt/mlxtend">mlxtend</a> Includes a number of additional
estimators as well as model visualization utilities.</p></li>
<li><p><a class="reference external" href="https://github.com/lensacom/sparkit-learn">sparkit-learn</a> Scikit-learn
API and functionality for PySpark’s distributed modelling.</p></li>
</ul>
<p><strong>Other regression and classification</strong></p>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/dmlc/xgboost">xgboost</a> Optimised gradient boosted decision
tree library.</p></li>
<li><p><a class="reference external" href="https://mlens.readthedocs.io/">ML-Ensemble</a> Generalized
ensemble learning (stacking, blending, subsemble, deep ensembles,
etc.).</p></li>
<li><p><a class="reference external" href="https://github.com/scikit-learn-contrib/lightning">lightning</a> Fast
state-of-the-art linear model solvers (SDCA, AdaGrad, SVRG, SAG, etc…).</p></li>
<li><p><a class="reference external" href="https://github.com/scikit-learn-contrib/py-earth">py-earth</a> Multivariate
adaptive regression splines</p></li>
<li><p><a class="reference external" href="https://github.com/jmetzen/kernel_regression">Kernel Regression</a>
Implementation of Nadaraya-Watson kernel regression with automatic bandwidth
selection</p></li>
<li><p><a class="reference external" href="https://github.com/trevorstephens/gplearn">gplearn</a> Genetic Programming
for symbolic regression tasks.</p></li>
<li><p><a class="reference external" href="https://github.com/alexfields/multiisotonic">multiisotonic</a> Isotonic
regression on multidimensional features.</p></li>
<li><p><a class="reference external" href="https://scikit.ml">scikit-multilearn</a> Multi-label classification with
focus on label space manipulation.</p></li>
<li><p><a class="reference external" href="https://github.com/dmbee/seglearn">seglearn</a> Time series and sequence
learning using sliding window segmentation.</p></li>
</ul>
<p><strong>Decomposition and clustering</strong></p>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/ariddell/lda/">lda</a>: Fast implementation of latent
Dirichlet allocation in Cython which uses <a class="reference external" href="https://en.wikipedia.org/wiki/Gibbs_sampling">Gibbs sampling</a> to sample from the true
posterior distribution. (scikit-learn’s
<a class="reference internal" href="modules/generated/sklearn.decomposition.LatentDirichletAllocation.html#sklearn.decomposition.LatentDirichletAllocation" title="sklearn.decomposition.LatentDirichletAllocation"><code class="xref py py-class docutils literal notranslate"><span class="pre">sklearn.decomposition.LatentDirichletAllocation</span></code></a> implementation uses
<a class="reference external" href="https://en.wikipedia.org/wiki/Variational_Bayesian_methods">variational inference</a> to sample from
a tractable approximation of a topic model’s posterior distribution.)</p></li>
<li><p><a class="reference external" href="https://github.com/jmetzen/sparse-filtering">Sparse Filtering</a>
Unsupervised feature learning based on sparse-filtering</p></li>
<li><p><a class="reference external" href="https://github.com/nicodv/kmodes">kmodes</a> k-modes clustering algorithm for
categorical data, and several of its variations.</p></li>
<li><p><a class="reference external" href="https://github.com/scikit-learn-contrib/hdbscan">hdbscan</a> HDBSCAN and Robust Single
Linkage clustering algorithms for robust variable density clustering.</p></li>
<li><p><a class="reference external" href="https://github.com/clara-labs/spherecluster">spherecluster</a> Spherical
K-means and mixture of von Mises Fisher clustering routines for data on the
unit hypersphere.</p></li>
</ul>
<p><strong>Pre-processing</strong></p>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/scikit-learn-contrib/categorical-encoding">categorical-encoding</a> A
library of sklearn compatible categorical variable encoders.</p></li>
<li><p><a class="reference external" href="https://github.com/scikit-learn-contrib/imbalanced-learn">imbalanced-learn</a> Various
methods to under- and over-sample datasets.</p></li>
</ul>
</div>
<div class="section" id="statistical-learning-with-python">
<h2>Statistical learning with Python<a class="headerlink" href="#statistical-learning-with-python" title="Permalink to this headline">¶</a></h2>
<p>Other packages useful for data analysis and machine learning.</p>
<ul class="simple">
<li><p><a class="reference external" href="https://pandas.pydata.org/">Pandas</a> Tools for working with heterogeneous and
columnar data, relational queries, time series and basic statistics.</p></li>
<li><p><a class="reference external" href="http://deeplearning.net/software/theano/">theano</a> A CPU/GPU array
processing framework geared towards deep learning research.</p></li>
<li><p><a class="reference external" href="https://www.statsmodels.org">statsmodels</a> Estimating and analysing
statistical models. More focused on statistical tests and less on prediction
than scikit-learn.</p></li>
<li><p><a class="reference external" href="https://pymc-devs.github.io/pymc/">PyMC</a> Bayesian statistical models and
fitting algorithms.</p></li>
<li><p><a class="reference external" href="https://github.com/IDSIA/Sacred">Sacred</a> Tool to help you configure,
organize, log and reproduce experiments</p></li>
<li><p><a class="reference external" href="https://stanford.edu/~mwaskom/software/seaborn/">Seaborn</a> Visualization library based on
matplotlib. It provides a high-level interface for drawing attractive statistical graphics.</p></li>
<li><p><a class="reference external" href="http://deeplearning.net/software_links/">Deep Learning</a> A curated list of deep learning
software libraries.</p></li>
</ul>
<div class="section" id="recommendation-engine-packages">
<h3>Recommendation Engine packages<a class="headerlink" href="#recommendation-engine-packages" title="Permalink to this headline">¶</a></h3>
<blockquote>
<div><ul class="simple">
<li><p><a class="reference external" href="https://turi.com/products/create/docs/graphlab.toolkits.recommender.html">GraphLab</a>
Implementation of classical recommendation techniques (in C++, with
Python bindings).</p></li>
</ul>
</div></blockquote>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/benfred/implicit">implicit</a>, Library for implicit
feedback datasets.</p></li>
<li><p><a class="reference external" href="https://github.com/lyst/lightfm">lightfm</a> A Python/Cython
implementation of a hybrid recommender system.</p></li>
<li><p><a class="reference external" href="https://github.com/ylongqi/openrec">OpenRec</a> TensorFlow-based
neural-network inspired recommendation algorithms.</p></li>
<li><p><a class="reference external" href="https://github.com/maciejkula/spotlight">Spotlight</a> Pytorch-based
implementation of deep recommender models.</p></li>
<li><p><a class="reference external" href="http://surpriselib.com/">Surprise Lib</a> Library for explicit feedback
datasets.</p></li>
</ul>
</div>
<div class="section" id="domain-specific-packages">
<h3>Domain specific packages<a class="headerlink" href="#domain-specific-packages" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://scikit-image.org/">scikit-image</a> Image processing and computer
vision in python.</p></li>
<li><p><a class="reference external" href="https://www.nltk.org/">Natural language toolkit (nltk)</a> Natural language
processing and some machine learning.</p></li>
<li><p><a class="reference external" href="https://radimrehurek.com/gensim/">gensim</a>  A library for topic modelling,
document indexing and similarity retrieval</p></li>
<li><p><a class="reference external" href="https://nilearn.github.io/">NiLearn</a> Machine learning for neuro-imaging.</p></li>
<li><p><a class="reference external" href="https://www.astroml.org/">AstroML</a>  Machine learning for astronomy.</p></li>
<li><p><a class="reference external" href="http://msmbuilder.org/">MSMBuilder</a>  Machine learning for protein
conformational dynamics time series.</p></li>
<li><p><a class="reference external" href="https://surpriselib.com/">scikit-surprise</a> A scikit for building and
evaluating recommender systems.</p></li>
</ul>
</div>
</div>
<div class="section" id="snippets-and-tidbits">
<h2>Snippets and tidbits<a class="headerlink" href="#snippets-and-tidbits" title="Permalink to this headline">¶</a></h2>
<p>The <a class="reference external" href="https://github.com/scikit-learn/scikit-learn/wiki/Third-party-projects-and-code-snippets">wiki</a> has more!</p>
</div>
</div>


      </div>
    <div class="container">
      <footer class="sk-content-footer">
            &copy; 2007 - 2019, scikit-learn developers (BSD License).
          <a href="_sources/related_projects.rst.txt" rel="nofollow">Show this page source</a>
      </footer>
    </div>
  </div>
</div>
<script src="_static/js/vendor/bootstrap.min.js"></script>

<script>
    window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
    ga('create', 'UA-22606712-2', 'auto');
    ga('set', 'anonymizeIp', true);
    ga('send', 'pageview');
</script>
<script async src='https://www.google-analytics.com/analytics.js'></script>


<script>
$(document).ready(function() {
    /* Add a [>>>] button on the top-right corner of code samples to hide
     * the >>> and ... prompts and the output and thus make the code
     * copyable. */
    var div = $('.highlight-python .highlight,' +
                '.highlight-python3 .highlight,' +
                '.highlight-pycon .highlight,' +
		'.highlight-default .highlight')
    var pre = div.find('pre');

    // get the styles from the current theme
    pre.parent().parent().css('position', 'relative');
    var hide_text = 'Hide prompts and outputs';
    var show_text = 'Show prompts and outputs';

    // create and add the button to all the code blocks that contain >>>
    div.each(function(index) {
        var jthis = $(this);
        if (jthis.find('.gp').length > 0) {
            var button = $('<span class="copybutton">&gt;&gt;&gt;</span>');
            button.attr('title', hide_text);
            button.data('hidden', 'false');
            jthis.prepend(button);
        }
        // tracebacks (.gt) contain bare text elements that need to be
        // wrapped in a span to work with .nextUntil() (see later)
        jthis.find('pre:has(.gt)').contents().filter(function() {
            return ((this.nodeType == 3) && (this.data.trim().length > 0));
        }).wrap('<span>');
    });

    // define the behavior of the button when it's clicked
    $('.copybutton').click(function(e){
        e.preventDefault();
        var button = $(this);
        if (button.data('hidden') === 'false') {
            // hide the code output
            button.parent().find('.go, .gp, .gt').hide();
            button.next('pre').find('.gt').nextUntil('.gp, .go').css('visibility', 'hidden');
            button.css('text-decoration', 'line-through');
            button.attr('title', show_text);
            button.data('hidden', 'true');
        } else {
            // show the code output
            button.parent().find('.go, .gp, .gt').show();
            button.next('pre').find('.gt').nextUntil('.gp, .go').css('visibility', 'visible');
            button.css('text-decoration', 'none');
            button.attr('title', hide_text);
            button.data('hidden', 'false');
        }
    });

	/*** Add permalink buttons next to glossary terms ***/
	$('dl.glossary > dt[id]').append(function() {
		return ('<a class="headerlink" href="#' +
			    this.getAttribute('id') +
			    '" title="Permalink to this term">¶</a>');
	});
  /*** Hide navbar when scrolling down ***/
  // Returns true when headerlink target matches hash in url
  (function() {
    hashTargetOnTop = function() {
        var hash = window.location.hash;
        if ( hash.length < 2 ) { return false; }

        var target = document.getElementById( hash.slice(1) );
        if ( target === null ) { return false; }

        var top = target.getBoundingClientRect().top;
        return (top < 2) && (top > -2);
    };

    // Hide navbar on load if hash target is on top
    var navBar = document.getElementById("navbar");
    var navBarToggler = document.getElementById("sk-navbar-toggler");
    var navBarHeightHidden = "-" + navBar.getBoundingClientRect().height + "px";
    var $window = $(window);

    hideNavBar = function() {
        navBar.style.top = navBarHeightHidden;
    };

    showNavBar = function() {
        navBar.style.top = "0";
    }

    if (hashTargetOnTop()) {
        hideNavBar()
    }

    var prevScrollpos = window.pageYOffset;
    hideOnScroll = function(lastScrollTop) {
        if (($window.width() < 768) && (navBarToggler.getAttribute("aria-expanded") === 'true')) {
            return;
        }
        if (lastScrollTop > 2 && (prevScrollpos <= lastScrollTop) || hashTargetOnTop()){
            hideNavBar()
        } else {
            showNavBar()
        }
        prevScrollpos = lastScrollTop;
    };

    /*** high preformance scroll event listener***/
    var raf = window.requestAnimationFrame ||
        window.webkitRequestAnimationFrame ||
        window.mozRequestAnimationFrame ||
        window.msRequestAnimationFrame ||
        window.oRequestAnimationFrame;
    var lastScrollTop = $window.scrollTop();

    if (raf) {
        loop();
    }

    function loop() {
        var scrollTop = $window.scrollTop();
        if (lastScrollTop === scrollTop) {
            raf(loop);
            return;
        } else {
            lastScrollTop = scrollTop;
            hideOnScroll(lastScrollTop);
            raf(loop);
        }
    }
  })();
});

</script>
    
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js"></script>
    
</body>
</html>